package com.lhn.bbs.utils;


import com.google.gson.Gson;
import com.lhn.bbs.common.VariableValue;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.net.URLEncoder;

public class QiniuUpload {

    //设置好账号的ACCESS_KEY和SECRET_KEY
    private static String ACCESS_KEY = VariableValue.accessKey; //这两个登录七牛 账号里面可以找到
    private static String SECRET_KEY = VariableValue.secretKey;

    //要上传的空间
    private static String bucketname = VariableValue.bucket; //对应要上传到七牛上 你的那个路径（自己建文件夹 注意设置公开）

    //密钥配置
    private static Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
    private static Configuration cfg = new Configuration(Region.huanan());
    //创建上传对象

    Configuration cf = new Configuration(Zone.zone1());
    private static UploadManager uploadManager = new UploadManager(cfg);

    //简单上传，使用默认策略，只需要设置上传的空间名就可以了
    public static String getUpToken(){
        return auth.uploadToken(bucketname);
    }

    public static String uploadFile(MultipartFile file) throws IOException {
        /**
         * 参数1：文件流的byte值
         * 参数2：存储的文件名称
         * 参数3：token
         */
        System.out.println(file);
        String fileName = System.currentTimeMillis()+"";
        Response put = uploadManager.put(file.getBytes(), fileName, getUpToken());
        //解析上传成功的结果
        DefaultPutRet putRet = new Gson().fromJson(put.bodyString(), DefaultPutRet.class);
        System.out.println(putRet.key);
        System.out.println(putRet.hash);
        return VariableValue.domain+putRet.key;
    }


}
